// 深拷贝多层 每一级别的数据都会拷贝
var obj = {
  id: 1,
  name: 'andy',
  msg: {
      age: 18
  },
  color: ['pink', 'red']
};
var o = {};
// 封装函数
function deepCopy(newObj, oldObj) {
  for (const k in oldObj) {
//  判断我们的属性值属于哪一种数据类型
// 1 获取属性值 oldObj[k]
  var item = oldObj[k]
  // 2 判断这个值是否是数组类型
  if(item instanceof Array) {
    newObj[k] = [];
    deepCopy(newObj[k],item);
  } else if(item instanceof Object) {
    // 判断这个值是否是 object 类型 (Array类型也属于 Object类型)
    newObj[k] = {};
    deepCopy(newObj[k], item);

  } else {
    // 简单类型
    newObj[k] = item;
  }
 
      
    }
  }
  deepCopy(o, obj);
  console.log(o);

  var arr = [];
  console.log(arr instanceof Object);
  o.msg.age = 20;
  console.log(obj);